package cn.uniqueinfo.dp.service;

import cn.uniqueinfo.dp.exception.UQException;
import cn.uniqueinfo.dp.service.base.IBaseService;
import cn.uniqueinfo.dp.vo.ColumnMetaDataVO;
import cn.uniqueinfo.dp.vo.FormGridColumnVO;
import cn.uniqueinfo.dp.vo.RoleVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author:朱元勋
 * @mail:395910063@qq.com
 * @date:2019-01-23 21:48:33
 * @description: 业务表单表格显示配置
 */
public interface IFormGridColumnService extends IBaseService<FormGridColumnVO> {
    /**
     * @author:朱元勋
     * @date:2019/1/23 22:01
     * @description:从sql中获取字段元数据
     * @param formName 对应业务表单标识
     * @param: sql sql语句
     * @param: param 参数
     * @return:java.util.List<cn.uniqueinfo.dp.vo.FormGridColumnVO>
     */
    List<FormGridColumnVO> getColumnsFromSql(String formName, String sql, Object param)
            throws UQException;

    FormGridColumnVO findGridColumn(ColumnMetaDataVO columnMetaDataVO);

    List<FormGridColumnVO> findGridColumnsByFormName(String fromName);

    Integer deleteByFormName(String formName);

    List<FormGridColumnVO> findGridColumns(String formName, List<RoleVO> list);
}
